class Date:
    def __init__(self, year, month, day, *args, **kwargs):
        self.year = year
        self.month = month
        self.day = day

    def tomorrow(self):
        return self.day + 1

    @staticmethod
    def date_from_str(date_str):
        year, month, day = tuple(date_str.split("-"))
        return Date(int(year), int(month), int(day))

    @classmethod
    def cls_from_str(cls, date_str):
        year, month, day = tuple(date_str.split("-"))
        return cls(int(year), int(month), int(day))

    def __str__(self):
        return "{year}/{month}/{day}".format(year=self.year, month=self.month, day=self.day)


# d = Date(2018, 12, 12)
# print(d)
# print(d.tomorrow())
# print(d)

if __name__ == "__main__":
    date_str = "2018-07-03"

    new_day = Date.date_from_str(date_str)
    new_day2 = Date.cls_from_str(date_str)

    print(new_day, new_day2)
